#pragma once

#include "IComponent.h"
#include "IAbility.h"
#include "Vector3D.h"
#include "Combatant.h"
#include "Trigger.h"

class CombatComponent : public IComponent
{
public:
	static const HashedString type;
	
	CombatComponent( Entity* parent );
	
	std::string ToString() const;
	bool ToXML( tinyxml2::XMLPrinter& printer );
	const HashedString& Type();
	
	Pointer<Combat::Combatant> Combatant();
protected:
	Pointer<Combat::Combatant> m_combatant;
	Pointer<TriggerBase> m_health;
	Pointer<TriggerBase> m_physicalDamage;
	Pointer<TriggerBase> m_specialDamage;
};